Описание
Задает или возвращает значение, показывающее, являются ли
компонентами индекса записи, имеющие пустые (Null) значения в полях
индекса (только в рабочей области Microsoft Jet).
Значение
Задаваемое или возвращаемое значение данного свойства имеет тип
Boolean и содержит значение True, если поля со значениями
Null не являются компонентами индекса. Данное свойство доступно для
чтения/записи для нового объекта Index, еще не добавленного в семейство,
и только для чтения для существующего объекта Index в семействе
Indexes.
Замечания
Для ускорения поиска записей по значению поля можно создать
индекс для данного поля. Если в индексированном поле допускается наличие пустых
значений (Null), и если ожидается наличие большого числа пустых значений,
то задание значения True для свойства IgnoreNulls объекта
Index позволяет уменьшить размер индекса.
Значение свойства
IgnoreNulls вместе со значением свойства Required определяет,
будут ли содержаться в индексе сведения о записях с пустыми значениями.
IgnoreNulls Required Пустые значения в индексе True False Значения Null допускаются, но не заносятся в индекс. False False Значения Null допускаются и заносятся в индекс. True или False True Значения Null не допускаются и не заносятся в индекс.
Пример
Следующая программа задает для свойства IgnoreNulls нового
объекта Index значение True или False в зависимости от
данных, введенных пользователем, а затем демонстрирует результат для объекта
Recordset, содержащего запись со значением Null в ключевом
поле.
Sub IgnoreNullsX()
Dim dbsNorthwind As Database
Dim tdfEmployees As TableDef
Dim idxNew As Index
Dim rstEmployees As Recordset
Set dbsNorthwind = OpenDatabase("Борей.mdb")
Set tdfEmployees = dbsNorthwind!Сотрудники
With tdfEmployees
' Создает новый объект Index.
Set idxNew = .CreateIndex("НовыйИндекс")
idxNew.Fields.Append idxNew.CreateField("Страна")
' Задает значение свойства IgnoreNulls нового объекта Index,
' зависящее от данных, введенных пользователем.
Select Case MsgBox("Задать для IgnoreNulls значение True?", vbYesNoCancel)
Case vbYes
idxNew.IgnoreNulls = True
Case vbNo
idxNew.IgnoreNulls = False
Case Else
dbsNorthwind.Close
End
End Select
' Добавляет новый объект Index в семейство Indexes
' таблицы "Сотрудники".
.Indexes.Append idxNew
.Indexes.Refresh
End With
Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники")
With rstEmployees
' Добавляет новую запись в таблицу "Сотрудники".
.AddNew
!Имя = "Иван"
!Фамилия = "Иванов"
.Update
' Задает порядок записей с помощью нового индекса.
.Index = idxNew.Name
.MoveFirst
Debug.Print "Индекс = " & .Index & ", IgnoreNulls = " & idxNew.IgnoreNulls
Debug.Print " Страна - Имя"
' Отображает объект Recordset. Значение свойства
' IgnoreNulls определяет, будет ли новая запись
' отображаться при выводе результатов.
Do While Not .EOF
Debug.Print " " & _
IIf(IsNull(!Страна), "[Null]", !Страна) & _
" - " & !Имя & " " & !Фамилия
.MoveNext
Loop
' Удаляет новую запись, созданную только для демонстрации.
.Index = ""
.Bookmark = .LastModified
.Delete
.Close
End With
' Удаляет новый объект Index, созданный только для демонстрации.
tdfEmployees.Indexes.Delete idxNew.Name
dbsNorthwind.Close
End Sub